When referring to a processor as 64-bit or 32-bit, this typically refers to the width of the registers (i.e. the width of software visible registers) and when referring to an operating system as 64-bit or 32-bit this refers to the width of the virtual memory addresses. A processor with 64-bit memory addresses can therefore directly access 264 bytes of byte-addressable memory. Most new processors are 64-bits and such processors perform most efficiently when running 64-bit software. 64-bit processors are backwards compatible, however, and most can run most 32-bit software, but this is inefficient as the 32-bit software does not use all the hardware in the 64-bit processor.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known processor architectures.